Robots today are programmed to perform their tasks by either on-line or off-line techniques, or combinations of both. A typical on-line programming method is known as the "teaching playback" technique. That technique involves the steps of placing the robot in the actual environment where it is to be used (i.e., placing the robot in a work space containing a workpiece to be acted on by the robot), training the robot by moving it through a series of configurations with respect to the workpiece, and causing those configurations to be stored in memory. The stored configurations are then used to generate a robot program. During "playback", the program regenerates the configurations which are continuously repeated on a succession of workpieces placed in the robot's work space.
A typical off-line programming technique involves generating the robot program using a CAD (computer-aided design) or CAD/CAM (computer-aided design/computer-aided manufacturing) system. The robot programs are composed of commanded actions (e.g., REACH, GRASP, PALLETIZE), configurations where the actions are to occur (e.g., position x.sub.1, y.sub.1, z.sub.1, orientation .alpha..sub.1, .beta..sub.1, .gamma..sub.1 ; position x.sub.2, y.sub.2, z.sub.2, orientation .alpha..sub.2, .beta..sub.2, .gamma..sub.2 ; etc . . . , ) and sensory queries that are used for branching and program control. In this method, a CAD data file stores data about the dimensions and positions of workpieces. The movement and configurations of the robot are coordinated with the CAD data. For example, CAM involves creating tool-path programs and is used to create parts and components on computerized numerically controlled (CNC) equipment. The specific data generated by the CAD system can be directly utilized in a CAM setup. There is sufficient information in a solid model drawing to automatically or semi-automatically create tool-path files.
On-line and off-line programming methods can also be employed together. For example, an on-line method could be used to create all or part of the initial robot program and an off-line method can be used to complete and/or edit the program.
Graphical interfaces have been developed to assist an operator or user in performing off-line programming. Typically, such interfaces employ a screen which depicts either the workpiece, images of the robot, or both. Those interfaces are deficient in many ways. For example, although the robot and the workpiece may both appear on the screen, the configuration of the robot's end-effector (typically a gripper) is not changeable by simple user interaction. Furthermore, the trajectories between configurations are either not shown on the screen and/or cannot be generated by simple user commands employing the CAD environment.
Current approaches to programming robots can be classified into two major categories:
1. Robot oriented programming
2. Object oriented (task level programming)
In robot oriented programming languages, an assembly task is explicitly described as a sequence of robot motions. The robot is guided and controlled by the robot program throughout the entire task.
Task level languages describe the assembly task as a sequence of positional goals of the objects rather than the motion of the robot needed to achieve these goals. No explicit robot motion is specified.
In sum, off-line and on-line programming of robots typically requires knowledge of a specialized robot programming language even when working in a CAD environment. Thus, in the prior art, the powerful and easy to use CAD environment has not been fully employed to lessen the complexity and time required for off-line programming of a robot. Furthermore, neither the on-line nor off-line programming technique has, heretofore, provided a way to simultaneously visualize plural robot configurations, to visualize together both robot configurations and trajectories by employing a graphical interface in a CAD environment, to graphically visualize different end effector states, or to associate programming code with one such state. The present invention solves those deficiencies.